/*
 * Unary.h
 *
 *  Created on: 16.05.2012
 *      Author: Eugene Kornykhin
 */

#ifndef UNARY_H_
#define UNARY_H_

#include "../PElement.h"

class Unary : public PElement {
public:
	Unary();
	virtual ~Unary();

	virtual void execute(Interpreter &);

	virtual PolizPosition next_position_after(PolizPosition) const;
	virtual bool isHalt() const;
	virtual Unary *clone(const Poliz &) const = 0;
	string toString() const = 0;

protected:
	virtual void push_operation_result(Interpreter &, const PElement &) = 0;
};

#endif /* UNARY_H_ */
